<?php

//
include_once("Conexion.php");

//Declaracion
class M_Mesa {

    //Variable de la clase
    private $idMesa;
    private $codigo;
    private $capacidad;
    private $id_espacio;
    private $nombre;
    private $idZona;
    private $usuCreac;
    private $usuModif;

    function setID_Zona($id_zona) {
        $this->idZona = $id_zona;
    }

    function setNombre($nombre) {
        $this->nombre = $nombre;
    }

    function setCapacidad($capacidad) {
        $this->capacidad = $capacidad;
    }

    function setId_Mesa($idmesa) {
        $this->idMesa = $idmesa;
    }

    function setUsuCreac($usuario) {
        $this->usuCreac = $usuario;
    }

    function setUsuModif($usuario) {
        $this->usuModif = $usuario;
    }

    function ListarMesas_UNO() {
        //Le deciamos que la locacion es lenguaje español
        setlocale(LC_CTYPE, 'es');
        //La sentencia a ejecutar
        $sql = " SELECT m.id_mesa, m.nombre as mesa, m.capacidad, m.id_zona, z.nombre as zona
  FROM tbl_mesa m
  JOIN tbl_zona z on m.id_zona = z.id_zona
  WHERE m.eliminado=false and m.id_mesa=$this->idMesa";
        try {
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Ejecutamos la sentencia
            $rs = pg_query($cn, $sql);
            //Creamos un array que almacenara los datos de la sentencia
            $registros = array();
            //Recorremos el resultado de la consulta y lo almacenamos en el array
            while ($reg = pg_fetch_array($rs)) {
                array_push($registros, $reg);
            }
            //Liberamos recursos
            pg_free_result($rs);
            pg_close($cn);
        } catch (exception $e) {
            try {
                pg_free_result($rs);
            } catch (exception $e) {
                
            }
            try {
                pg_close($cn);
            } catch (exception $e) {
                
            }
        }
        return $registros;
    }

    function ListarMesas_TODOS() {
        //Le deciamos que la locacion es lenguaje español
        setlocale(LC_CTYPE, 'es');
        //La sentencia a ejecutar
        $sql = " SELECT m.id_mesa, m.nombre, m.capacidad, m.id_zona, z.nombre as zona
  FROM tbl_mesa m
  JOIN tbl_zona z on m.id_zona = z.id_zona
  WHERE m.eliminado=false ";
        try {
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Ejecutamos la sentencia
            $rs = pg_query($cn, $sql);
            //Creamos un array que almacenara los datos de la sentencia
            $registros = array();
            //Recorremos el resultado de la consulta y lo almacenamos en el array
            while ($reg = pg_fetch_array($rs)) {
                array_push($registros, $reg);
            }
            //Liberamos recursos
            pg_free_result($rs);
            pg_close($cn);
        } catch (exception $e) {
            try {
                pg_free_result($rs);
            } catch (exception $e) {
                
            }
            try {
                pg_close($cn);
            } catch (exception $e) {
                
            }
        }
        return $registros;
    }

    //V_MesasPorZona
    function searchMesas_All() {
        //Le deciamos que la locacion es lenguaje español
        setlocale(LC_CTYPE, 'es');
        //La sentencia a ejecutar
        $sql = " SELECT * FROM tbl_mesa ";
        try {
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Ejecutamos la sentencia
            $rs = pg_query($cn, $sql);
            //Creamos un array que almacenara los datos de la sentencia
            $registros = array();
            //Recorremos el resultado de la consulta y lo almacenamos en el array
            while ($reg = pg_fetch_array($rs)) {
                array_push($registros, $reg);
            }
            //Liberamos recursos
            pg_free_result($rs);
            pg_close($cn);
        } catch (exception $e) {
            try {
                pg_free_result($rs);
            } catch (exception $e) {
                
            }
            try {
                pg_close($cn);
            } catch (exception $e) {
                
            }
        }
        return $registros;
    }
    //CREADO POR JLOZANO, V_MESASPORZONAVISTATABLA
    function searchMesasxZona_All() {
        //Le deciamos que la locacion es lenguaje español
        setlocale(LC_CTYPE, 'es');
        //La sentencia a ejecutar
        $sql = " SELECT * FROM tbl_mesa where eliminado=false and id_zona = $this->idZona order by nombre";
        try {
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Ejecutamos la sentencia
            $rs = pg_query($cn, $sql);
            //Creamos un array que almacenara los datos de la sentencia
            $registros = array();
            //Recorremos el resultado de la consulta y lo almacenamos en el array
            while ($reg = pg_fetch_array($rs)) {
                array_push($registros, $reg);
            }
            //Liberamos recursos
            pg_free_result($rs);
            pg_close($cn);
        } catch (exception $e) {
            try {
                pg_free_result($rs);
            } catch (exception $e) {
                
            }
            try {
                pg_close($cn);
            } catch (exception $e) {
                
            }
        }
        return $registros;
    }
    
    function insertMesa() {


        //Creamos un objeto de la clase conexion
        $miconexion = new Conexion();
        //Obtenemos la conexion
        $cn = $miconexion->conectar();
        //Comenzamos la transaccion
       $sql="INSERT INTO tbl_mesa(
            nombre, capacidad, id_zona, creacion, creadopor, eliminado)
    VALUES ('$this->nombre',$this->capacidad,$this->idZona,now(),'$this->usuCreac',false)";
        
        //Ejecutamos la sentencia
        $result = pg_query($cn, $sql);
        if (!$result) {
            //Si no obtiene resultados anulamos la transaccion
            //  pg_query($cn,"ROLLBACK");
            $rpta = false;
        } else {
            //Si obtiene resultados confirmamos la transaccion
            // pg_query($cn,"COMMIT");
            $rpta = true;
        }
        //Cerramos la conexion
        pg_close($cn);

        return $rpta;
    }

    //Metodo utilizado para actualizar un ROL
    function updateMesa() {

        //Creamos un objeto de la clase conexion
        $miconexion = new Conexion();
        //Obtenemos la conexion
        $cn = $miconexion->conectar();
        //Comenzamos la transaccion
        $sql="UPDATE tbl_mesa
   SET  nombre='$this->nombre', capacidad=$this->capacidad, id_zona=$this->idZona, 
       actualizado=now(), actualizadopor='$this->usuModif'
 WHERE id_mesa=$this->idMesa";
  
        //Ejecutamos la sentencia
        $result = pg_query($cn, $sql);

        if (!$result) {
            //Si no obtiene resultados anulamos la transaccion
            //    mysql_query("ROLLBACK", $cn);
            $rpta = false;
        } else {
            //Si obtiene resultados confirmamos la transaccion
            //  mysql_query("COMMIT", $cn);
            $rpta = true;
        }
        //Cerramos la conexion
        pg_close($cn);


        return $rpta;
    }

    //metodo utilizado para eliminar un rol
    function deleteMesa() {

        //Creamos un objeto de la clase conexion
        $miconexion = new Conexion();
        //Obtenemos la conexion
        $cn = $miconexion->conectar();
        //Comenzamos la transaccion
        //mysql_query("BEGIN", $cn);
        //Elaboramos la sentencia
        $sql = " update tbl_mesa set eliminado = true  where id_mesa = $this->idMesa ";

        //Ejecutamos la sentencia
        $result = pg_query($cn, $sql);

        if (!$result) {
            //Si no obtiene resultados anulamos la transaccion
            //    mysql_query("ROLLBACK", $cn);
            $rpta = false;
        } else {
            //Si obtiene resultados confirmamos la transaccion
            //  mysql_query("COMMIT", $cn);
            $rpta = true;
        }
        //Cerramos la conexion
        pg_close($cn);


        return $rpta;
    }
    

}

?>